Cloud computing refers to the delivery of scalable and pooled computing, storage and networking capacity as a service to a network of end-recipients. The name “cloud computing” comes from the use of clouds as an abstraction for the complex infrastructure of networks and associated hardware operative within the cloud. Cloud computing provides services for a user's data, software and computation over a network, for example. Such computing capability relies on sharing of resources to achieve coherence and economies of scale similar to a utility (like the electricity grid) over a network (typically the Internet).
Applications deployed on resources supporting the cloud presently often have to be manually deployed and that consumes considerable administrative time. The manual steps of deploying the application include the provisioning and instantiation of the infrastructure, which requires linking the installation of the application or deployment of an image to the full knowledge of the deployed infrastructure. Manual deployment typically requires numerous sequences of steps usually launched by the user who attempts to deploy the application.
Templates allow users to describe deployments of complex cloud applications in text files called templates. These templates are parsed and executed by the template engine to instantiate the infrastructure described in the template. The instantiated infrastructure is typically called a stack.
Examples of stack management include the OpenStack Orchestration program called Heat. Heat Orchestration Templates (HOT) are created using the YAML markup language, which are text files that get executed by the Heat Engine. The Amazon Web Services (AWS) CloudFormation service is another example of an infrastructure orchestration template system.
Once an infrastructure is instantiated from a template, the infrastructure is disconnected from the template. Changes to the template can be applied to any existing instantiations; i.e., stacks of that template in an automated fashion. There are ways to apply changes to existing instantiations and prior art for such a process exists. However, presently any changes made to the possibly many stacks for a given template never make it back to the template in any automated/reliable way.